1. Field of the Invention
The present invention relates to a computer system and a booting method, and more specifically, to a computer system and a booting method that process EFI events in a multi-tasking manner utilizing a multi-tasking kernel architecture.
2. Description of the Prior Art
A prior art computer system comprises a basic input output system (BIOS) to process a booting procedure; that is, before the computer system loads and executes an operating system (OS), the BIOS takes charge of the initialization of hardware devices utilized by the computer system. For example, the BIOS checks the hardware devices utilized by the computer system to determine if they are in a normal operation condition. The typical BIOS is generated by compiling a program coded in a low level language (e.g., Assembly Language). As is well known in the art, the BIOS is generally stored in a read-only memory (ROM) of a motherboard of the computer system. The main advantage in storing the BIOS this way is that the content of the BIOS is protected from modification. Therefore, the operation of the booting procedure cannot be affected by unprotected BIOS. However, the conventional BIOS has several disadvantages; for example, the conventional BIOS cannot support some of the functions provided for a computer system, such as “plug and play” and “hot plugging”, because it needs to adjust hardware device drivers and I/O (Input/Output) resources.
In order to improve the conventional BIOS, the prior art provides an extensible firmware interface (EFI) to replace the current BIOS (i.e., the conventional BIOS). The EFI is based on the conventional BIOS, but the part utilized for engaging the software with the hardware devices of the computer system is further standardized to provide greater expansion functionality as compared to the conventional BIOS. The EFI is coded in an advanced programming language (e.g., the C Programming Language) and it is like a simplified operating system utilized to interface the hardware devices of the computer system and the operating system of the computer system. In addition, compared with the text interface of the conventional BIOS, the EFI provides a user-friendly graphical interface that provides a more practical and operational display mode for users. The operation and functions of the EFI are described in the following paragraph.
During the execution of the booting service of the computer system, the execution of the EFI comprises the following steps: (1) Activate; (2) Initialize a standardized firmware platform; (3) Load the driver function libraries of the EFI and execute the related functions; and (4) Select an operating system from an activation list of the EFI and provide the EFI with an activation guiding code. Afterwards, the selected operating system is loaded and executed thereby completing the entire booting service procedure of the computer system.
However, during the booting service of the computer system, by way of either the conventional BIOS or the above-mentioned EFI, neither can support the multi-tasking processing function. Therefore, for the EFI, when the microprocessor of the computer system, such as a central processing unit (CPU), receives an event with a relatively higher priority level, the microprocessor cannot immediately interrupt the execution of an event currently being processed by the CPU and having a relatively lower priority level. The microprocessor must finish executing the processing event first, and then it is able to execute the event with the relatively higher priority level. In conclusion, the application of EFI is limited because the EFI does not provide a multi-tasking processing mechanism.